﻿using System;

namespace Kyoh.Lib.Component
{
    /// <summary>プロパティの表示フォントファミリーを設定する属性を定義します。</summary>
    [AttributeUsage(AttributeTargets.Property)]
    public class DisplayFontFamilyAttribute : Attribute
    {
        /// <summary>システムで定義された等幅フォントを使用します。</summary>
        public const string Monospace = "Monospace";
        /// <summary>システムで定義されたサンセリフ体フォントを使用します。</summary>
        public const string SansSerif = "SansSerif";
        /// <summary>システムで定義されたセリフ体フォントを使用します。</summary>
        public const string Serif = "Serif";
        /// <summary><see cref="DisplayFontFamilyAttribute"/> のデフォルト値。実態は <c>null</c>。</summary>
        public static readonly DisplayFontFamilyAttribute Default = null;
        /// <summary><see cref="DisplayFontFamilyAttribute"/> クラスの新しいインスタンスを初期化します。</summary>
        /// <param name="family">
        /// 使用するフォントファミリー名。システム既定のフォントファミリーとして、
        /// <see cref="DisplayFontFamilyAttribute.Monospace"/>、
        /// <see cref="DisplayFontFamilyAttribute.SansSerif"/>、
        /// <see cref="DisplayFontFamilyAttribute.Serif"/> を指定することができます。
        /// </param>
        public DisplayFontFamilyAttribute(string family)
        {
            this.Family = family;
        }
        /// <summary>指定されたフォントファミリー名を取得します。</summary>
        public string Family { get; private set; }
    }
}
